package com.jaya.budan.utils;

import android.content.Context;

import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;

public class Location {

    AMapLocationClient client;
    AMapLocationClientOption option;
    AMapLocationListener listener;

    public Location(Context mContext, AMapLocationListener listener) {
        this.client = new AMapLocationClient(mContext);
        //初始化定位参数
        option = new AMapLocationClientOption();
        this.listener = listener;
        init();
    }

    public void init() {
        //设置定位监听
        client.setLocationListener(listener);
        //设置定位模式为高精度模式，Battery_Saving为低功耗模式，Device_Sensors是仅设备模式
        option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
        //设置定位间隔,单位毫秒,默认为2000ms
        option.setInterval(10000);
        //设置定位参数
        client.setLocationOption(option);
        // 此方法为每隔固定时间会发起一次定位请求，为了减少电量消耗或网络流量消耗，
        // 注意设置合适的定位时间的间隔（最小间隔支持为1000ms），并且在合适时间调用stopLocation()方法来取消定位请求
        // 在定位结束后，在合适的生命周期调用onDestroy()方法
        // 在单次定位情况下，定位无论成功与否，都无需调用stopLocation()方法移除请求，定位sdk内部会移除
        //启动定位
        client.startLocation();
    }

    /**
     * 销毁Client
     */
    public void destory() {
        client.stopLocation();
        client.onDestroy();
    }
}
